package com.zzy._04_delay;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;

import java.nio.charset.StandardCharsets;

/**
 * 延迟消息
 */
public class Producer {

    public static void main(String[] args) throws Exception {
        // 1.创建生产者对象.并命名
        DefaultMQProducer producer = new DefaultMQProducer("producer_delay_group");
        // 2.设置namesServer地址
        producer.setNamesrvAddr("localhost:9876");
        // 3.启动生产者对象
        producer.start();
        // 4.指定一级分类topic,二级分类tags,信息和数据必须要用byte
        Message msg = new Message("delay_topic" /* Topic */,
                "delay_tag" /* Tag */,
                "我是同步消息！".getBytes(StandardCharsets.UTF_8)
        );
        // 5.发送消息到broker,成功会有响应,立马知道叫做同步
        // 设置延迟发送发送时间
        msg.setDelayTimeLevel(3);
        SendResult sendResult = producer.send(msg);
        // 6.sendResult返回消息是否成功送达
        System.out.printf("%s%n", sendResult);
        // 7.关流
        producer.shutdown();
    }



}
